The present invention relates generally to image decompression, and more particularly to a system and method for evaluation of an inverse discrete cosine transform as part of image decompression.
Most images that are to be conveyed or stored electronically have spatial redundancy due to a degree of spatial periodicity and limited spatial variation, whereby many spatial frequency components are close to zero. Pictures (static images or frames of moving images), represented using any color space and possibly motion compensated and predictively coded, may be compressed by performing a frequency transformation followed by quantization, and some form of entropy coding, usually Huffman or arithmetic coding.
Spatial frequency domain representation of pictures using 8.times.8, 2-dimensional discrete cosine transforms has become standard. This technique is used, for example, by the Joint Photographic Experts Group (JPEG) standard for still pictures, the Px64 standard for H.261 videoconferencing, the Motion Picture Experts Group (MPEG)-1 standard for PC based multimedia and hand-held video games, and the MPGE-2 standard for digital cable television. The picture is represented as arrays of picture elements (pels) characterized by a (possibly predictively coded) quantity such as luminance, chrominance, or a motion vector. The arrays are divided into 8 by 8 blocks of pel values, and each block is converted to an 8 by 8 matrix of horizontal and vertical spatial frequency coefficients.
When the resulting coefficients are quantized, most of the medium to high frequency coefficients yield zero values. The coefficients are ordered generally in the order of increasing spatial frequency, resulting in clusters of nonzero coefficients early in the series followed by runs of consecutive zero values. Such a data stream can be significantly compressed using statistical encoding.
When the image is decompressed, each 8 by 8 matrix of spatial frequency coefficients is converted into an 8-by-8 block of pel values by performing the two-dimensional inverse discrete cosine transform (IDCT). The two-dimensional IDCT is separable into a cascade of one-dimensional IDCTs performed first along one array dimension and then along the other. For example, each column of coefficients in the original array may be replaced with the corresponding values of their IDCT. The original pel values may then be obtained by replacing each row of resulting values with its IDCT. The 8-by-8, two-dimensional IDCT can thus be decomposed into sixteen one-dimensional, eighth order IDCTs.
It can be seen that the eighth order, one-dimensional IDCT has widespread, usually real-time, applications in image decompression. Considerable effort has gone into producing efficient implementations. Most of the effort has focused on combinatorial implementations, where the delay must be reduced by reducing the number of multiplications and, less importantly, additions. The tradeoff between additions and multiplications results in calculations requiring many more additions than multiplications, and rather large total numbers of operations. Such calculations for IDCT or discrete cosine transforms (DCT) are disclosed in "Practical Fast 1-D IDCT Algorithms with 11 Multiplications," Christoph Loeffler, Adriaan Ligtenberg and George S. Moschytz, Proceedings. of IEEE ICASSP vol. 2 pp. 988-991, February 1989 and "A Fast DCT-SQ Scheme for Images," Yukihiro Arai, Takeshi Agui and Masayuki Nakajima, The Transactions of the IEICE, vol. E71, no. 11, pp. 1095-1097, November 1988.
While the combinatorial implementations are fast, they require a large amount of hardware since different devices are required for each operation. All two-dimensional IDCT implementations require a memory for the transpose operation between the column and row one-dimensional IDCTs. This memory could also be used to hold intermediate results as the IDCTs are computed by a sequential logic circuit, such as a multiply accumulate together with a modest amount of auxiliary logic. As is well known, a multiply accumulate comprises a multiplier and an adder, with the multiplier output connected to an adder input. With this less expensive hardware, the fastest calculation requires the fewest number of steps having at most one multiplication, where necessary steps having additions but no multiplications offer no advantage over steps that also include a multiplication.
A method for hardware implementation using fused multiply/add operations is disclosed in "New Scaled DCT Algorithms for Fused Multiply/Add Architectures," Elliot Linzer and Ephraim Feig, Proceedings of the IEEE ICASSP, pp. 2201-2204, 1991. However, both this method and the one disclosed in Arai et al. mentioned above yield results that are the IDCT results multiplied by a scale factor. While it is possible to account for these scale factors in the image processing quantizing matrix, this technique is only practical with software implementations. In hardware implementations additional multipliers and memory would be necessary. However, this additional hardware is not necessary if the final scaling is by a power of 2, in which case a shift of the bits of the results can be used. In order for the final scaling of the results of a 2-dimensional IDCT to be by a power of 2, the results of the 1-dimensional IDCTs must be off by a factor equal to the square root of the power of 2.
Accordingly, an object of the present invention is to provide a system and method for image decompression wherein the hardware for non-scaled, 2-dimensional IDCT computation requires only one multiplier and the IDCT computation is performed in fewer steps than was heretofore possible.
Another object of the present invention is to provide a simplified system for 8-by-8, 2-dimensional IDCT computation.
Additional objects and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The objects and advantages of the invention may be realized and obtained by means of the instrumentalities and combinations particularly pointed out in the claims.